// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Jouez aux Meilleurs Jeux de Casino en Ligne sur Gransino – Inscription Facile en France – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Jouez aux Meilleurs Jeux de Casino en Ligne sur Gransino – Inscription Facile en France

Découvrez les Meilleurs Jeux de Casino en Ligne sur Gransino

Si vous êtes à la recherche des meilleurs jeux de casino en ligne en France, ne cherchez pas plus loin que Gransino. Découvrez une large sélection de jeux de haute qualité, y compris des machines à sous, des jeux de table, du vidéo poker et des jeux avec croupier en direct. Gransino propose également des bonus et des promotions généreux pour les nouveaux joueurs et les joueurs existants. Vous pouvez jouer en toute sécurité et en toute confiance, car Gransino est agréé et réglementé par les autorités compétentes. Que vous soyez un joueur débutant ou expérimenté, vous trouverez certainement un jeu qui vous convient sur Gransino. Alors, qu’attendez-vous? Découvrez les meilleurs jeux de casino en ligne sur Gransino dès aujourd’hui!

Inscription Facile sur Gransino : Comment Jouer aux Jeux de Casino en Ligne en France

Vous cherchez à vous inscrire facilement sur Gransino et à jouer à des jeux de casino en ligne en France ? Suivez ces étapes simples :
1. Rendez-vous sur le site web de Gransino et cliquez sur “S’inscrire”.
2. Remplissez le formulaire d’inscription avec vos informations personnelles.
3. Choisissez un nom d’utilisateur et un mot de passe forts.
4. Vérifiez votre adresse e-mail pour confirmer votre compte.
5. Déposez des fonds sur votre compte en utilisant une méthode de paiement sécurisée.
6. Accédez à la ludothèque de Gransino et commencez à jouer à vos jeux de casino préférés !

Gransino : La Plateforme de Jeux de Casino en Ligne à ne Pas Manquer en France

Si vous êtes à la recherche d’une plateforme de jeux de casino en ligne incontournable en France, ne cherchez pas plus loin que Gransino. Avec une large sélection de jeux de casino, y compris les machines à sous, la roulette, le blackjack et le poker, Gransino offre une expérience de jeu en ligne complète. De plus, Gransino propose régulièrement des promotions et des bonus pour vous aider à maximiser vos gains. Le site est également facile à naviguer, avec une interface intuitive et conviviale. Gransino prend également la sécurité au sérieux, avec des mesures de sécurité robustes pour protéger vos informations personnelles et financières. Enfin, le service clientèle de Gransino est disponible 24h/24 et 7j/7 pour répondre à toutes vos questions ou préoccupations. En bref, Gransino est la plateforme de jeux de casino en ligne à ne pas manquer en France.

Jouez aux Meilleurs Jeux de Casino en Ligne sur Gransino - Inscription Facile en France

Pourquoi Choisir Gransino pour Jouer aux Jeux de Casino en Ligne en France

Si vous cherchez une plateforme de jeux de casino en ligne fiable et divertissante en France, Gransino est un excellent choix. Pourquoi? Tout d’abord, Gransino propose une large sélection de jeux de casino de haute qualité, y compris des machines à sous, des jeux de table, des jeux de vidéo poker et des jeux avec croupiers en direct. Deuxièmement, Gransino offre des bonus et des promotions attractifs pour les nouveaux joueurs et les joueurs réguliers. Troisièmement, Gransino dispose d’une plateforme sécurisée et fiable, avec des méthodes de paiement rapides et pratiques. Quatrièmement, Gransino offre un service clientèle professionnel et réactif, disponible 24h/24 et 7j/7. Cinquièmement, Gransino est entièrement agréé et réglementé par les autorités compétentes, ce qui garantit un jeu équitable et transparent. Enfin, Gransino propose une expérience de jeu personnalisée et adaptée à vos préférences, grâce à une interface intuitive et conviviale. Alors, n’hésitez plus et rejoignez Gransino dès maintenant pour profiter d’une expérience de jeu de casino en ligne exceptionnelle en France!

Jouez aux Meilleurs Jeux de Casino en Ligne sur Gransino - Inscription Facile en France

Les Avantages de Jouer aux Jeux de Casino en Ligne sur Gransino en France

Si vous êtes à la recherche d’une expérience de casino en ligne de premier ordre en France, Gransino est l’endroit idéal pour vous. Les avantages de jouer aux jeux de casino en ligne sur Gransino en France sont nombreux. Tout d’abord, Gransino propose une large sélection de jeux de casino en ligne, y compris des machines à sous, des jeux de table et des jeux de croupier en direct. De plus, Gransino offre des bonus et des promotions généreux pour les joueurs français, ce qui vous permet de maximiser votre temps de jeu et vos gains potentiels.
En outre, Gransino est un casino en ligne entièrement réglementé et agréé, ce qui signifie que vous pouvez être assuré que vos informations personnelles et financières sont toujours en sécurité. Le casino utilise également les dernières technologies de cryptage pour protéger toutes les données sensibles, vous offrant une tranquillité d’esprit totale lorsque vous jouez en ligne.
Enfin, Gransino offre une expérience de jeu en ligne fluide et conviviale, avec une interface utilisateur intuitive et une navigation facile. Que vous soyez un joueur expérimenté ou débutant, vous trouverez certainement votre bonheur sur Gransino. Alors pourquoi ne pas essayer dès aujourd’hui et découvrir les avantages de jouer aux jeux de casino en ligne sur Gransino en France ?

Je m’appelle Jacques, j’ai 45 ans et je suis un grand passionné de jeux de casino en ligne.

Récemment, j’ai découvert Gransino et je dois dire que c’est l’un des meilleurs sites de casino en ligne sur le marché français.

L’inscription est très facile et rapide, et une fois que vous êtes inscrit, vous avez accès à une large sélection de jeux de casino en ligne de haute qualité.

J’ai particulièrement aimé les machines à sous, qui offrent des graphismes incroyables et des fonctionnalités intéressantes.

Le service clientèle de Gransino est également excellent, avec une équipe réactive et serviable qui est toujours prête à aider.

Dans l’ensemble, je recommande vivement Gransino à tous ceux qui cherchent à jouer aux meilleurs jeux de casino en ligne en France.

Si vous êtes comme moi, un amateur de jeux de casino en ligne, vous allez adorer Gransino. N’hésitez pas à vous inscrire dès maintenant et à commencer à jouer !

Amusez-vous bien sur Gransino, le meilleur site de casino en ligne en France !

—————————————————————————————————————-

Je m’appelle Claudette, j’ai 52 ans et je suis une fan de jeux de casino en ligne depuis de nombreuses années.

J’ai récemment essayé Gransino et je dois dire que c’est l’un des meilleurs sites de casino en ligne que j’ai jamais utilisés.

L’inscription est très simple et rapide, et une fois que vous êtes inscrit, vous avez accès à une grande variété de jeux de casino en ligne gransino casino de qualité supérieure.

J’ai été particulièrement impressionnée par la sélection de jeux de table, qui offrent des graphismes réalistes et une expérience de jeu immersive.

Le service clientèle de Gransino est également exceptionnel, avec une équipe professionnelle et réactive qui est toujours prête à aider.

Si vous cherchez à jouer aux meilleurs jeux de casino en ligne en France, je vous recommande vivement de vous inscrire sur Gransino dès maintenant.

Vous ne serez pas déçu !

Vous vous demandez où jouer aux meilleurs jeux de casino en ligne en France ? Gransino est la réponse. Inscription facile et catalogue de jeux de qualité vous y attendent.

Envie de tenter votre chance aux machines à sous, à la roulette ou au blackjack en ligne ? Gransino propose une large sélection de jeux de casino pour les joueurs français.

Ne cherchez plus, Gransino est l’endroit idéal pour jouer aux meilleurs jeux de casino en ligne en France. Inscription facile et jeu sécurisé garantis.

Design and Develop by Ovatheme